HTTP协议(TCP/IP):
服务器套接字(TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口)
数据包(请求包、报文)http 请求格式:
第一部分:请求行(占一行) 请求方法 空格 地址(URL) 空格 协议版本 回车符 换行符,如:GET /index.html HTTP/1.1
第二部分:请求头(占多行) 一些客户端发送给服务器的参数,键值对应,建和值使用冒号分割的
第三部分:请求体,请求体和请求头中间有一个空行,POST请求,请求体里面会存放表单数据。(GET请求,无请求体)
请求方法包括:GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE
请求头 | 说明 |
Host | 接受请求的服务器地址。可以是IP:端口号,也可以是域名。 |
User-Agent | 发送请求的应用程序名称 |
Connection | 指定与连接相关的属性。如:Connection:Keep-Alive |
Accept-Charset | 通知服务器端可以发送的编码格式 |
Accept-Encoding | 通知服务器端可以发送数据压缩格式 |
Accept-Language | 通知服务器端可以发送的语言 |
数据包(请求包、报文)http 响应格式:
第一部分:响应行(占一行) 协议 空格 结果(比如200) 空格 描述(自定义)
第二部分:响应头(占多行) 一些服务器发送给客户端的参数,键值对
第三部分:响应体:响应体和响应头中间有一个空行,客户端显示的内容(一般为html代码)
状态码 | 说明 |
200 | 相应成功 |
302 | 跳转。跳转地址通过响应头中的Location属性指定(注意Forward和Redirect之间的区别) |
400 | 客户端请求有与发错误,不能被服务器识别 |
403 | 服务器收到请求,但拒绝提供服务(认证失败) |
404 | 请求资源不存在 |
500 | 服务器内部错误 |
响应头 | 说明 |
Server | 服务器应用程序软件的名字和版本 |
Content-Type | 相应正文的类型(是图片还是二进制字符串) |
Content-Length | 相应正文的长度 |
Content-Charset | 相应正文使用的编码 |
Content-Encoding | 相应正文使用的压缩格式 |
Content-Language | 相应正文使用的语言 |