[关闭]
@lizlalala 2016-09-11T12:36:46.000000Z 字数 1304 阅读 1308

图解http(一)

http


chapter1 web及网络基础

思维导图


chapter2 简单的http协议

  1. http协议用于客户端和服务器之间通信。
  2. 请求报文:

    1. GET /index.htm HTTP/1.1
    2. Host: hackr.jp
    • 请求方法
    • 请求URI
    • 协议版本 以上三个位请求行
    • 请求头+内容实体
      请求报文的构成
  3. 响应报文

  4. http 不保存状态(stateless)
    但实际中,需要保持状态,比如用户登录信息,这个时候利用cookie等。

  5. http方法

    • get
    • post
    • put:传输文件,状态码如204,表示该文件已经存在于服务器上。
      由于HTTP1.1中的put方法自身不带验证机制,任何人都可以上传文件,存在安全问题。一般网站不使用该方法,除非有自定义的验证机制/rest标准设计。
      put是幂等的。

    • HEAD(同get,但不返回报文主体内容,用于确认URI有效性及资源更新的内容),

    • DELETE:删除文件,同put一样,不安全,响应:204(no content)

    • TRACE: 讲之前的请求通信环回给客户端。

    • Connect:用隧道协议连接代理,主要用SSL。TLS协议把通信内容加密后经网络隧道传输。
  6. 持久连接


    最开始的时候,每请求(指http)一次就要断开tcp再新建一次连接(包括,tcp三次握手建立连接,请求,响应,四次握手断开tcp连接)。开销太大。(比如一个html中还有图片资源,这个也是请求。)
    为解决上述问题,提出了持久连接。(只要一方不提出断连,就一直保持tcp连接,可以多个http请求。)
    http1.1默认持久连接,但1.0不是
    引申:使得pipeline成为可能,多个请求可以并行发送。

  7. cookie
    第一次客户端请求后,服务端生成cookie,要求客户端set cookie,然后下次客户端请求时便会自动加入cookie信息,服务端再根据这个进行判别。服务端仍然是无状态的。


chapter3 http报文内的http信息

  1. 请求报文

    三部分:

    • 报文首部(请求头)
      • 请求行:方法、URI、协议版本
      • 首部字段: 通用首部、请求首部|响应首部、实体首部
        - 其他:如cookie
    • 空行、
    • 报文主体
  2. 内容协商以返回最合适的内容

比如访问macy.com,梅西百货,它会根据浏览器的默认语言,返回相应的web页面,如中文版。
以相应资源的字符集、编码方式、语言作为判断的基准。


chapter4 http状态码

  1. 2XX成功
    • 200 ok
    • 204 no content:在服务器不需要向客户端返回信息时用
    • 206 partial content, 范围请求
  2. 3XX重定向
    • 301 moved parmanantly .永久性重定向,如保存的书签需要更新。
    • 302 found 临时性重定向,仅一次
    • 303 see other,请求资源有另一个URI,需要用get方法重定向获取。部分区别于302
    • 304 not modified
  3. 4XX 客户端错误
    • 400 bad request 请求报文中有语法错误
    • 401 unauthorized 要登录/登录失败’
    • 403 forbidden 权限问题
    • 404 not found
  4. 5XX 服务器错误
    • 500 internal server error。
    • 503 service unavailable,服务器在超负载正忙。 retry-after字段
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注