15
Sockets API and HTTP 1.0 Copyright notice: care has been taken to use only those web images deemed by the instructor to be in the public domain. If you see a copyrighted image on any slide and are the copyright owner, please contact the instructor. It will be removed. Prepared by Ruchir Khaitan Edited by Jae Woo Lee

Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

Sockets API and HTTP 1.0

Copyright notice: care has been taken to use only those web images deemed by the instructor to be in the public domain. If you see a copyrighted image on any slide and are the copyright owner, please contact the instructor. It will be removed.

Prepared by Ruchir Khaitan Edited by Jae Woo Lee

Page 2: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

The client / server model ●  Server waits for

incoming requests over the network from clients

●  e.g. Web browser & web server

●  C programs use Sockets API

Page 3: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

What is a socket? ●  End-point for inter-

process communication over TCP/IP network

●  Socket is bound to an IP address and a port number

Page 4: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

Sockets API Summary

Source: https://roxanageambasu.github.io/ds-class//assets/lectures/lecture4.pdf

Page 5: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

socket() ●  Called by both

client and server ●  On the server, a

listening socket is created first using socket() – a connected socket will be created later by accept()

Page 6: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

bind()

●  Usually called only by server

●  Binds the listening socket to a specific port that should be known to the client

Page 7: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

listen()

●  Called only by server

●  Sets up the listening socket to accept connections

Page 8: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

accept() ●  Called only by

server ●  By default blocks

until a connection request arrives

●  Creates and returns a new socket for each new client

Page 9: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

Listening socket vs. Connected socket

Source: http://www.madwizard.org/programming/tutorials/netcpp/3

connect accept

Page 10: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

send() and recv()

●  Called by both client and server

●  Reads and writes to the other side

●  Message boundaries may not be preserved

Page 11: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

HTTP 1.0 ●  Client sends a HTTP request for a resource

on the server (ex. a file on the server)

●  The server sends a HTTP response

Page 12: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

HTTP request

●  First line: method, request-URI, version ○  Ex: “GET /index.html HTTP/1.0\r\n”

●  Followed by 0 or more headers: ○  Ex: “Host: www.google.com\r\n”

●  Followed by an empty line ○  “\r\n”

Page 13: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

HTTP request example

Page 14: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

HTTP response ●  First line: response status

o  Success: HTTP/1.0 200 OK\r\n o  Failure: HTTP/1.0 404 Not Found\r\n

●  Followed by 0 or more response headers ●  Followed by a blank line ●  Followed by the content of the response

o  For example, an image file or an HTML file

Page 15: Sockets API and HTTP 1 - Columbia Universityjae/3157/files/overview-sockets-http.pdf · The client / server model Server waits for incoming requests over the network from clients

HTTP response example